
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：8.队列在进程中的使用.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-06 09:54
'''
"""
    在python中存在全局对象，整个内存中只有这一个对象
"""

import multiprocessing
# 在进程使用队列需要在multiprocessing中导入
from multiprocessing import Process, Queue
import time, random

def write(queue:Queue):
    for value in ["A", "B", "C"]:
        queue.put(value)
        print(f"存入值为：{value}")
        time.sleep(random.random()) # 返回0-1之间的随机数

def read(queue:Queue):
    while True:
        if not queue.empty():
            value = queue.get()
            print(f"队列中的数据：{value}")
            time.sleep(random.random())
        else:
            print("队列中没有数据了")
            break

if __name__ == '__main__':
    # 1.创建队列对象
    queue = Queue()
    p1 = multiprocessing.Process(target=write, args=(queue, ))
    p2 = multiprocessing.Process(target=read, args=(queue, ))

    p1.start()
    p1.join()

    p2.start()
    p2.join()
